Nodemon Nedir?
Nodemon, Node.js uygulamalarının geliştirme sürecini kolaylaştıran bir izleme aracıdır. Dosya değişikliklerini algılar ve uygulamayı otomatik olarak yeniden başlatır.
// package.json içinde kullanım
{
"scripts": {
"dev": "nodemon app.js",
"watch": "nodemon --watch src --ext js,json,yml"
}
}
// nodemon.json yapılandırma örneği
{
"watch": ["src/", "config/"],
"ext": "js,json,yaml,env",
"ignore": ["*.test.js", "fixtures/*"],
"exec": "node ./src/server.js",
"events": {
"restart": "osascript -e 'display notification \"Uygulama yeniden başlatıldı\" with title \"Nodemon\"'"
}
}
Nodemon'u projenize eklemek için npm install nodemon --save-dev
komutunu kullanabilirsiniz.
Temel Özellikler
- Dosya değişikliklerini otomatik izleme
- Özelleştirilebilir dosya uzantısı desteği
- İzlenecek ve göz ardı edilecek dizinleri belirleme
- Özel komut çalıştırma desteği
- Legacy mode desteği
- Node.js flags desteği
Önemli Nokta: Nodemon, geliştirme sürecini hızlandırır ve manuel yeniden başlatma ihtiyacını ortadan kaldırır. — Nodemon'un en önemli avantajı
Komut Satırı Seçenekleri
- --exec: Farklı bir komut çalıştırma
- --watch: İzlenecek dizinleri belirleme
- --ext: İzlenecek uzantıları belirleme
- --ignore: Göz ardı edilecek dosyaları belirleme
- --delay: Yeniden başlatma gecikmesi
- --quiet: Sessiz mod
Nodemon, .nodemon.json
dosyası ile proje bazlı yapılandırma yapmanıza olanak tanır.
Gelişmiş Kullanım
Olay Yönetimi
{
"events": {
"start": "echo 'Uygulama başlatıldı'",
"restart": "echo 'Değişiklikler algılandı'",
"crash": "echo 'Uygulama çöktü!'"
}
}Legacy Mode
nodemon --legacy-watch app.js
Büyük projelerde çok sayıda dosyayı izlemek performans sorunlarına yol açabilir.
Tipik Kullanım Senaryoları
Express.js Uygulamaları
{
"scripts": {
"dev": "nodemon ./src/app.js"
}
}TypeScript Projeleri
{
"scripts": {
"dev": "nodemon --exec 'ts-node' ./src/index.ts"
}
}
Nodemon vs Alternatifler
- PM2 ile karşılaştırıldığında daha hafif ve geliştirme odaklı
- Forever ile karşılaştırıldığında daha modern ve aktif geliştirilen
- Node-dev ile karşılaştırıldığında daha geniş özellik seti
Nodemon özellikle geliştirme ortamı için tasarlanmıştır, prodüksiyon ortamı için PM2 gibi araçlar tercih edilmelidir.
En İyi Uygulamalar
Göz Ardı Edilecek Dosyaları Belirleme
node_modules
- Geçici dosyalar
- Log dosyaları
- Build çıktıları
Performans İyileştirmeleri
- Sadece gerekli dizinleri izleme
- Uygun dosya uzantılarını belirleme
- Gereksiz yeniden başlatmaları önleme
Özetle, Nodemon, Node.js geliştirme sürecini önemli ölçüde kolaylaştıran, geliştirici dostu bir araçtır. Otomatik yeniden başlatma özelliği ve geniş yapılandırma seçenekleriyle, modern web uygulaması geliştirme süreçlerinin vazgeçilmez bir parçası haline gelmiştir.